package org.jsola.hr.query;


import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.query.BaseQuery;
import org.jsola.hr.dto.SocProgItemUpdateDTO;
import org.jsola.hr.entity.SocProgItemDO;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 社保,补差,补收,补交查询Query
 * @author lyh
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class FillSocQuery extends BaseQuery {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = "公司Id")
    private String companyId;

    @ApiModelProperty(notes = "员工Id列表")
    private List<String> empIdList;

    @ApiModelProperty(notes = "缴费归属(1:只个人;2:只公司;3:公司个人都有)")
    private Integer payAttribution;

    @ApiModelProperty(notes = "补收开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date fillGatherStartDate;

    @ApiModelProperty(notes = "补收结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date fillGatherEndDate;

    @ApiModelProperty(notes = "补差开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date fillDifferenceStartDate;

    @ApiModelProperty(notes = "补差结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date fillDifferenceEndDate;

    @ApiModelProperty(notes = "补缴开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date fillPaymentStartDate;

    @ApiModelProperty(notes = "补缴结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date fillPaymentEndDate;

    @ApiModelProperty(notes = "参保管理Id")
    private String empSocInfoId;

    @ApiModelProperty(notes = "参保方案子项List(补差用)")
    private List<SocProgItemUpdateDTO> fillDifferenceItem;

    @ApiModelProperty(notes = "参保方案子项List(补收补缴)")
    private List<SocProgItemDO> empSocItemDOList;

    @ApiModelProperty(notes = "参保方案是否只设置参保金额")
    private Boolean onlySocAmount;

    @ApiModelProperty(notes = "参保方案id")
    private String socProgId;

    @ApiModelProperty(notes = "补差更新月")
    private List<String> lastDt;

    @ApiModelProperty(notes = "1:补收 2:补缴")
    private String supplementType;

    @ApiModelProperty(notes = "滞纳金")
    private BigDecimal fine;

    @ApiModelProperty(notes = "服务费")
    private BigDecimal serviceCost;

    @ApiModelProperty(notes = "参保月Id")
    private String monthId;

    @ApiModelProperty(notes = "月")
    private String month;
}
